From 430ac5665c003630453e05989c82c9457ede60be Mon Sep 17 00:00:00 2001 From: robertl Date: Tue, 31 Aug 2004 01:10:27 +0000 Subject: [PATCH] Improve packet dumps when debugging. --- gpsbabel/jeeps/gpsapp.c | 22 ++++++++++++++++++++-- gpsbabel/jeeps/gpsapp.h | 1 + gpsbabel/jeeps/gpsread.c | 6 +++++- gpsbabel/jeeps/gpssend.c | 4 +++- 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/gpsbabel/jeeps/gpsapp.c b/gpsbabel/jeeps/gpsapp.c index 5f8617a93..594d60e09 100644 --- a/gpsbabel/jeeps/gpsapp.c +++ b/gpsbabel/jeeps/gpsapp.c @@ -5604,13 +5604,31 @@ void GPS_D800_Get(GPS_PPacket packet, GPS_PPvt_Data *pvt) */ const char * -Get_Pkt_Type(unsigned char p) +Get_Pkt_Type(unsigned char p, unsigned char d0, const char **xinfo) { + *xinfo = NULL; #define LT LINK_ID[gps_link_type] if (p == LT.Pid_Ack_Byte) return "ACK"; - if (p == LT.Pid_Command_Data) + if (p == LT.Pid_Command_Data) { + switch (d0) { + case 0: *xinfo = "Abort"; break; + case 1: *xinfo = "Xfer Alm"; break; + case 2: *xinfo = "Xfer Posn"; break; + case 3: *xinfo = "Xfer Prx"; break; + case 4: *xinfo = "Xfer Rte"; break; + case 5: *xinfo = "Xfer Time"; break; + case 6: *xinfo = "Xfer Trk"; break; + case 7: *xinfo = "Xfer Wpt"; break; + case 8: *xinfo = "Power Down"; break; + case 49: *xinfo = "Xfer PVT Start"; break; + case 50: *xinfo = "Xfer PVT Stop"; break; + case 92: *xinfo = "Flight Records"; break; + case 117: *xinfo = "Xfer Laps"; break; + default: *xinfo = "Unknown"; + } return "CMDDAT"; + } if (p == LT.Pid_Xfer_Cmplt) return "XFRCMP"; if (p == LT.Pid_Date_Time_Data) diff --git a/gpsbabel/jeeps/gpsapp.h b/gpsbabel/jeeps/gpsapp.h index 1ceecaef5..4d042f359 100644 --- a/gpsbabel/jeeps/gpsapp.h +++ b/gpsbabel/jeeps/gpsapp.h @@ -53,6 +53,7 @@ int32 GPS_A800_Off(const char *port, int32 *fd); int32 GPS_A800_Get(int32 *fd, GPS_PPvt_Data *packet); void GPS_D800_Get(GPS_PPacket packet, GPS_PPvt_Data *pvt); +const char * Get_Pkt_Type(unsigned char p, unsigned char d0, const char **xinfo); #endif diff --git a/gpsbabel/jeeps/gpsread.c b/gpsbabel/jeeps/gpsread.c index a2b82dbb4..6f9004eb3 100644 --- a/gpsbabel/jeeps/gpsread.c +++ b/gpsbabel/jeeps/gpsread.c @@ -76,13 +76,15 @@ int32 GPS_Packet_Read(int32 fd, GPS_PPacket *packet) UC *p; int32 i; UC chk=0; + const char *m1; + const char *m2; len = 0; isDLE = gpsFalse; p = (*packet)->data; start = GPS_Time_Now(); - GPS_Diag("\nRx Data:"); + GPS_Diag("Rx Data:"); while(GPS_Time_Now() < start+GPS_TIME_OUT) { if((n=GPS_Serial_Chars_Ready(fd))) @@ -158,6 +160,8 @@ int32 GPS_Packet_Read(int32 fd, GPS_PPacket *packet) return 0; } + m1 = Get_Pkt_Type((*packet)->type, (*packet)->data[0], &m2); + GPS_Diag("(%-8s%s)\n", m1, m2 ? m2 : ""); return (*packet)->n; } diff --git a/gpsbabel/jeeps/gpssend.c b/gpsbabel/jeeps/gpssend.c index bad9ccfc1..fce480cb2 100644 --- a/gpsbabel/jeeps/gpssend.c +++ b/gpsbabel/jeeps/gpssend.c @@ -124,6 +124,7 @@ DiagS(void *buf, size_t sz) int32 GPS_Write_Packet(int32 fd, GPS_PPacket packet) { size_t ret; + const char *m1, *m2; GPS_Diag("Tx Data:"); Diag(&packet->dle, 3); @@ -158,7 +159,8 @@ int32 GPS_Write_Packet(int32 fd, GPS_PPacket packet) GPS_Diag(": "); DiagS(packet->data, packet->bytes); DiagS(&packet->chk, 3); - GPS_Diag("(%-8s)\n", Get_Pkt_Type(packet->type)); + m1 = Get_Pkt_Type(packet->type, packet->data[0], &m2); + GPS_Diag("(%-8s%s)\n", m1, m2 ? m2 : ""); if((ret=GPS_Serial_Write(fd,(const void *)&packet->chk,(size_t)3)) == -1) { -- 2.30.2